package yuhuibear.poat.annotations.action;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 用来定义触发器， 过程等等。 <BR>
 * 这里定义的语句会在所有实体和视图都被映射之后， 被执行一遍。 <h1>拥有这个标签的方法必须是
 * <ul>
 * <li>返回 String 类型</li>
 * <li>没有入口参数</li>
 * </ul>
 * <p>
 * 如果是创建函数等对象，请使用 create or replace 替代 create.
 * </p>
 * </h1>
 * 
 * @author yuhui
 * 
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Macro {

	/**
	 * 宏的名称,必须是所定义的对象名，例如所定义的地表名，所定义的地函数名。
	 * 
	 * @return
	 */
	String name();

	/**
	 * 执行这个宏所依赖的宏
	 * 
	 * @return
	 */
	String depend();

	/**
	 * sql 语句
	 * 
	 * @return
	 */
	// String sql();
}
